home *** CD-ROM | disk | FTP | other *** search
- /* stderr.c: Redirect stderr */
-
- #include <stdio.h>
- #include <io.h>
- #include <fcntl.h>
- #include <assert.h>
- #include <sys/types.h>
- #include <sys/stat.h>
-
- static int old_handle = -1;
-
- int redir_stderr(char *fname)
- {
- int fd = open(fname,O_WRONLY|O_CREAT|O_TEXT,S_IWRITE);
-
- assert(fd >= 0);
- old_handle = dup(fileno(stderr));
- dup2(fd,fileno(stderr));
- close(fd);
- return fd;
- }
-
- void restore_stderr()
- {
- if (old_handle != -1)
- {
- dup2(old_handle,fileno(stderr));
- close(old_handle);
- old_handle = -1;
- }
- }
-
-
-